#include <algorithm>
#include <iostream>
using namespace std;

#include <string>

int main() {
    // 下面是视频讲解的代码
    string str,table("0123456789ABCDEF");
    int m, n;
    cin >> m >> n;

    if(m == 0)
    {
        cout << '0' << endl;
        return 0;
    }

    bool flag = false;
    if(m < 0)
    {
        m = -m;
        flag = true;
    }

    while(m)
    {
        str += table[m % n];
        m /= n;
    }

    if(flag == true)
        str += '-';

    reverse(str.begin(), str.end());
    cout << str << endl;
    return 0;

    // 下面是自己写的代码（代码处理得有点冗余了）
    // 本质就是取到每一位数，因为我们做这道题肯定是知道输出结果
    // 比如 7 转化为二进制是 111
    // 所以我们要想办法拿下来每一位
    // 本来十进制拿其中每一位我是会的，但是今天突然短路没想到类比的，原来这么简单
    // 就是先取模再除，直到为0 
    // int M = 0;
    // int N = 0;
    // cin >> M;
    // cin >> N;

    // string table("0123456789ABCDEF");   // 这个表的意义是因为题目要求如果N大于9，则对应的数字规则参考16进制（比如，10用A表示，等等）
    // string ret;

    // if(M == 0)
    // {
    //     cout << '0' << endl;
    // }
    // else if(M > 0)
    // {
    //     while(M)
    //     {
    //         ret += table[M % N];
    //         M /= N;
    //     }
    // }
    // else 
    // {
    //     M *= -1;
    //     while(M)
    //     {
    //         ret += table[M % N];
    //         M /= N;
    //     }
    //     ret += '-';
    // }

    // reverse(ret.begin(), ret.end());
    // cout << ret << endl;
    // return 0;
}
